// -----------------------------------------------------------------------
// Chromatic
// Integrated Development Environment
//
// Copyright (C) 2001-2010 Franck Charlet.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
//
//  1. Redistributions of source code must retain the above copyright notice,
//     this list of conditions and the following disclaimer.
//
//  2. Redistributions in binary form must reproduce the above copyright notice,
//     this list of conditions and the following disclaimer in the documentation
//     and/or other materials provided with the distribution.
//
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL FRANCK CHARLET OR CONTRIBUTORS BE LIABLE
// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
// SUCH DAMAGE.
// -----------------------------------------------------------------------
// AddIns.h: declaration of used variables / structures for AddIns.cpp
// -----------------------------------------------------------------------

#ifndef _ADDINS_H_
#define _ADDINS_H_

// -----------------------------------------------------------------------
// Constants
#define ADDIN_FINISHED 0
#define ADDIN_PERSISTANT 1
#define ADDIN_DIE 2
#define ADDIN_ZOMBIE 3

#define INIFILE_MAIN 0
#define INIFILE_CURRENTUSERMENUS 1
#define INIFILE_TOOLBARS 2
#define INIFILE_COLORS 3
#define INIFILE_FTPACCOUNTS 4
#define INIFILE_SKINS 5
#define INIFILE_PROJECTSTYPES 6
#define INIFILE_LANGUAGES 7
#define INIFILE_DATES 8
#define INIFILE_CGREP 9
#define INIFILE_FILTERS 10

#define HOOK_MDICREATE 0
#define HOOK_MDI 1
#define HOOK_MDICLIENT 2
#define HOOK_CHILDCREATE 3
#define HOOK_CHILD 4
#define HOOK_CMAXXX 5

#define HOOK_CONTINUE 0
#define HOOK_DIE 1

// -----------------------------------------------------------------------
// Structures
typedef struct _ADDINCONTEXT
{
    long Version;
    long NbrChilds;
    long ActiveProject;
    HINSTANCE hInstance;
    long OSType;
    long FullScreenMode;
    long SysTrayMode;
    HWND hMDI;
    HWND hClient;
    HACCEL hAccelerators;
    HWND hTreeView;
    HWND hWindowsList;
    HWND hStatusBar;
    HWND hOutputBox;
    HWND hDebugBox;
    HWND hOutputSysTab;
    HWND hCurrentChild;
    HWND hCurrentCodeMax;
    HWND hRebar;
    HIMAGELIST hEmptyImageList;
    HIMAGELIST hMainImageList;
    HIMAGELIST hLittleImageList;
    HIMAGELIST hControlsImageList;
    HIMAGELIST hDialogEdImageList;
    WNDPROC MDIhWndProc;
    void (__stdcall *ChildCreateProc)(HWND);
    WNDPROC ChildhWndProc;
    WNDPROC CodeMaxhWndProc;
    HWND hProjectToolbar;
    HWND hProjectPager;
    HWND hWindowsToolbar;
    HWND hWindowsPager;
    HWND hOutputBoxToolbar;
    HWND hOutputBoxPager;
    long ColdStart;
} ADDINCONTEXT, *LPADDINCONTEXT;

// MINICHILD structure
typedef struct _MINICHILDDAT
{
    HWND hChildCodeMax;
    char *FileName;
    char *Language;
    long ReadOnly;
    long FileLoaded;
    long ModifFlag;
} MINICHILDDAT, *LPMINICHILDDAT;

// WA Library services (Extended version for Chromatic)
typedef struct _CHROMATICLIB
{
    // Standard CHROMATICLIB functions
    long CreateSplashDialog;
    long CreateModalDialog;
    long CreateNonModalDialog;
    long CreateSplitter;
    long CreateMDIDialog;
    long CreateMDIChildDialog;
    long CreateToolBar;
    long CreateImageList;
    long CreateSysTab;
    long CreateTrackBar;
    long CreateUpDown;
    long CreateProgressBar;
    long CreateStatusBar;
    long CreateColorBox;
    long CreateGripBox;
    long CreateLabel;
    long CreatePictureBox;
    long CreateFrame;
    long CreateButton;
    long CreateIPBox;
    long CreateRichTextBox;
    long CreateHexBox;
    long CreateCheckBox;
    long CreateRebar;
    long CreatePager;
    long CreateClient;
    long CreateRadioButton;
    long CreateListView;
    long CreateTreeView;
    long CreateComboBox;
    long CreateListBox;
    long CreateScrollBar;
    long CreateDumpBox;
    long CreateStockModalDialog;
    long CreateTextBox;
    long CreateDockingBox;
    long DialogSetIcon;
    long DialogGetXUnit;
    long DialogGetYUnit;
    long DialogXPixelToUnit;
    long DialogYPixelToUnit;
    long DialogXUnitToPixel;
    long DialogYUnitToPixel;
    long ToolBarAddButton;
    long ToolBarGetButton;
    long ToolBarGetButtonXSize;
    long ToolBarGetButtonYSize;
    long ToolBarGetButtonsCount;
    long ToolBarGetRowsCount;
    long ToolBarGetImagelist;
    long ToolBarAddSeparator;
    long ToolBarGetNotifiedToolTip;
    long ToolBarGetNotifiedDropDownItem;
    long ToolBarDisplayToolTip;
    long ToolBarResize;
    long ToolBarSetButtonPressed;
    long ToolBarSetButtonChecked;
    long ToolBarSetButtonEnabled;
    long ToolBarIsButtonPressed;
    long ToolBarIsButtonChecked;
    long ToolBarDisplayPopupMenu;
    long ToolBarGetXSize;
    long ToolBarGetYSize;
    long ToolBarGetButtonXPosition;
    long ToolBarGetXYSize;
    long ToolBarGetRealPos;
    long ToolBarGetButtonXYPos;
    long ToolBarGetButtonIndexXSize;
    long ToolBarGetXPadding;
    long ToolBarGetYPadding;
    long ToolBarGetNotifiedHotItem;
    long ToolBarRemoveButton;
    long ToolBarSetButtonBitmap;
    long ImageListDestroy;
    long ImageListAddIcon;
    long ImageListGetIconsCount;
    long ImageListGetIcon;
    long SysTabAddItem;
    long SysTabGetCurrentItem;
    long SysTabGetImagelist;
    long SysTabSetCurrentItem;
    long SysTabSetFocusItem;
    long SysTabHighLightItem;
    long SysTabItemsCount;
    long SysTabGetRowsCount;
    long SysTabSetSeparators;
    long SysTabSetItemsSize;
    long SysTabRemoveItem;
    long SysTabSetMinWidth;
    long SysTabSetPadding;
    long TrackBarSetRange;
    long TrackBarSetPos;
    long TrackBarGetPos;
    long TrackBarSetTicks;
    long TrackBarGetToolTips;
    long ProgressBarSetRange;
    long ProgressBarSetRelPos;
    long StatusBarSetParts;
    long StatusBarSetText;
    long StatusBarGetYSize;
    long ColorBoxGetColor;
    long ColorBoxSetColor;
    long GripBoxGetColor;
    long GripBoxSetColor;
    long GripBoxClose;
    long GripBoxVisible;
    long GripBoxResize;
    long LabelGetImage;
    long PictureBoxChangeIcon;
    long PictureBoxChangeImage;
    long FrameRefreshToolbar;
    long ButtonSetIcon;
    long ButtonGetImage;
    long ButtonGetState;
    long IPBoxClearIP;
    long IPBoxGetIP;
    long IPBoxSetIP;
    long IPBoxSetFocus;
    long IPBoxSetRange;
    long IPBoxIsBlank;
    long TextBoxGetLen;
    long TextBoxSetMaxLen;
    long TextBoxGetMaxLen;
    long TextBoxGetTextHandle;
    long TextBoxAddText;
    long TextBoxSelText;
    long TextBoxRemoveSel;
    long TextBoxSetCaretPos;
    long TextBoxLinesCount;
    long TextBoxGetMarginWidth;
    long TextBoxGetFirstVisibleLine;
    long TextBoxIsModified;
    long TextBoxGetCurrentOptions;
    long TextBoxGetPasswordChar;
    long TextBoxSetPasswordChar;
    long TextBoxGetSelection;
    long TextBoxGetScrollPos;
    long TextBoxGetBreakProcAddress;
    long TextBoxCanPaste;
    long TextBoxCanUndo;
    long CheckBoxGetState;
    long CheckBoxSetState;
    long RebarAddBand;
    long RebarRemoveBand;
    long RebarGetXSize;
    long RebarGetYSize;
    long RebarResize;
    long RebarSetBackColor;
    long RebarSetTextColor;
    long RebarBandVisible;
    long RebarGetBandsCount;
    long RebarGetHeight;
    long RebarGetBackGroundColor;
    long RebarGetRowsCount;
    long RebarGetToolTips;
    long RebarGetTextColor;
    long RebarGetPalette;
    long RebarGetImageList;
    long PagerDisplaySetSize;
    long PagerMaximizeX;
    long PagerMaximizeY;
    long PagerGetNotifiedChild;
    long PagerSetBackColor;
    long PagerGetBackColor;
    long PagerGetBorderSize;
    long PagerGetButtonSize;
    long PagerGetScrollPos;
    long PagerGetOrientation;
    long PagerSetOrientation;
    long PagerChangeOrientation;
    long ClientResize;
    long ClientGetActiveChild;
    long ClientSetNextChild;
    long ClientSetPreviousChild;
    long ClientTileHorizontal;
    long ClientTileVertical;
    long ClientTileCascade;
    long ClientTileArrangeIconic;
    long RadioButtonGetState;
    long RadioButtonSetState;
    long ListViewAddCol;
    long ListViewSetColWidth;
    long ListViewGetColWidth;
    long ListViewSetScroll;
    long ListViewClear;
    long ListViewDetachImageList;
    long ListViewAddItem;
    long ListViewDeleteItem;
    long ListViewSetSubItem;
    long ListViewSetSubItemImage;
    long ListViewGetSubItemImage;
    long ListViewEditValidated;
    long ListViewGetEditResult;
    long ListViewItemCount;
    long ListViewSelItemCount;
    long ListViewMultiSelFirstItem;
    long ListViewGetItemSelState;
    long ListViewSetEditModeOn;
    long ListViewSetItemSel;
    long ListViewSetItemHighlight;
    long ListViewSetItemFocus;
    long ListViewGetItemUnderCursor;
    long ListViewGetFirstFocusItem;
    long ListViewGetSelItem;
    long ListViewGetSelItemText;
    long ListViewSetSelItemText;
    long ListViewCheckBoxItemDoubleClick;
    long ListViewGetItemText;
    long ListViewGetItemIcon;
    long ListViewGetNotifiedColumnIndex;
    long ListViewSort;
    long ListViewReOrder;
    long ListViewGetHeaderLabel;
    long ListViewGetHeaderPosition;
    long ListViewSetHeaderPosition;
    long ListViewSetBackColor;
    long ListViewGetBackColor;
    long ListViewGetTextBackColor;
    long ListViewGetTextColor;
    long ListViewGetToolTips;
    long ListViewGetTopIndex;
    long ListViewGetCountPerPage;
    long ListViewGetEditControl;
    long ListViewGetExStyle;
    long ListViewGetSysHeader;
    long ListViewGetHotCursor;
    long ListViewGetImageList;
    long ListViewSetItemCheckbox;
    long ListViewGetItemCheckbox;
    long ListViewIsCheckboxNotify;
    long ListViewFindItem;
    long ListViewFindSubItem;
    long ListViewBeginDrag;
    long ListViewMoveDrag;
    long ListViewEndDrag;
    long ListViewPasteAutoEdit;
    long TreeViewAddItem;
    long TreeViewSetToolTips;
    long TreeViewGetToolTips;
    long TreeViewSetIndent;
    long TreeViewRemoveItem;
    long TreeViewSetBackColor;
    long TreeViewGetExpandingState;
    long TreeViewGetExpandingItem;
    long TreeViewGetDeletedItem;
    long TreeViewSetItemIcon;
    long TreeViewSetItemExpandedState;
    long TreeViewGetItemExpandedState;
    long TreeViewSetSingleExpandState;
    long TreeViewGetSelectedItem;
    long TreeViewGetItemFromPos;
    long TreeViewSetSelectedItem;
    long TreeViewGetItemText;
    long TreeViewSetItemText;
    long TreeViewGetItemParent;
    long TreeViewGetRoot;
    long TreeViewGetItemCount;
    long TreeViewGetVisibleCount;
    long TreeViewGetFirstItemChild;
    long TreeViewGetNextItem;
    long TreeViewGetPreviousItem;
    long TreeViewSearchItemText;
    long TreeViewSearchChildPartialText;
    long TreeViewGetChildItemsCount;
    long TreeViewGetSelChildItemPos;
    long TreeViewGetItemLevel;
    long TreeViewGetBackColor;
    long TreeViewGetEditControl;
    long TreeViewGetImageList;
    long TreeViewGetIndent;
    long TreeViewGetInsertMarkColor;
    long TreeViewGetLineColor;
    long TreeViewGetTextColor;
    long TreeViewGetItemHeight;
    long TreeViewGetScrollTime;
    long TreeViewGetItemTextRect;
    long TreeViewGetItemRect;
    long ComboBoxAddItem;
    long ComboBoxDeleteItem;
    long ComboBoxReset;
    long ComboBoxSetMaxLen;
    long ComboBoxCount;
    long ComboBoxGetIndex;
    long ComboBoxSetIndex;
    long ComboBoxGetItem;
    long ComboBoxGetCurrentItem;
    long ComboBoxItemExist;
    long ComboBoxGetItemData;
    long ComboBoxSaveInIniFile;
    long ComboBoxFillFromIniFile;
    long ListBoxAddItem;
    long ListBoxReset;
    long ListBoxSetHorzScrollWidth;
    long ListBoxSetColumnsWidth;
    long ListBoxCount;
    long ListBoxGetTopIndex;
    long ListBoxSetTopIndex;
    long ListBoxSetItemData;
    long ListBoxGetItemData;
    long ListBoxIsItemSelected;
    long ListBoxGetSelItemIndex;
    long ListBoxSetIndex;
    long ListBoxGetCurrentItem;
    long ListBoxGetItem;
    long ListBoxDeleteItem;
    long ListBoxReplaceItem;
    long ListBoxReplaceSelItem;
    long ListBoxProcessDrag;
    long ListBoxSelItemDown;
    long ListBoxSelItemUp;
    long ListBoxSelItemRemove;
    long ListBoxItemExist;
    long ListBoxItemUnderCursor;
    long ScrollBarGetMinRange;
    long ScrollBarGetMaxRange;
    long ScrollBarGetPageRange;
    long ScrollBarSetPageRange;
    long ScrollBarShowHide;
    long ScrollBarSetMinMaxRange;
    long DumpBoxResize;
    long DumpBoxScrollDown;
    long DumpBoxScrollUp;
    long DumpBoxGetVisibleLines;
    long DumpBoxGetVisibleColumns;
    long DockingBoxGetState;
    long DockingBoxRemove;
    long DockingBoxShow;
    long DockingBoxWasVisible;
    long MenuGetString;
    long MenuEnable;
    long MenuSetDefaultItem;
    long MenuSetItemState;
    long MenuSetItemType;
    long MenuSetItemText;
    long MenuAddSeparator;
    long MenuAddString;
    long ScreenWidth;
    long ScreenHeight;
    long ScreenRectToClient;
    long CursorSetWait;
    long CursorSetNo;
    long CursorSetCross;
    long CursorSetNormal;
    long CursorDisable;
    long CursorEnable;
    long IniReadKey;
    long IniReadBoolKey;
    long IniWriteSection;
    long IniDeleteKey;
    long IniWriteKey;
    long MathGenerateRandomNumber;
    long DateGetNow;
    long DateGetYear;
    long DateGetMonth;
    long DateGetDay;
    long DateGetHour;
    long DateGetMinutes;
    long DateGetSeconds;
    long DateGetFormat;
    long DateGetTimeFormat;
    long StringIsLabel;
    long StringIsHexaDecimal;
    long StringIsDecimal;
    long StringIsLabelChar;
    long StringIsDigitChar;
    long StringIsHexaChar;
    long StringIsAlphaChar;
    long StringIsBlankChar;
    long StringIsOpenBracketChar;
    long StringIsUnderLineChar;
    long StringIsDotChar;
    long StringIsCommaChar;
    long StringIsQuoteChar;
    long StringIsArobasChar;
    long StringIsSpaceChar;
    long StringIsEOL;
    long StringNumberComplement;
    long StringHexNumberComplement;
    long StringOctNumberComplement;
    long StringBinNumberComplement;
    long StringCount;
    long StringReplace;
    long StringHex32;
    long StringHex16;
    long StringHex8;
    long StringSplit;
    long StringGetSplitUBound;
    long StringGetSplitElement;
    long StringReleaseSplit;
    long StringJoin;
    long StringFree;
    long StringLen;
    long StringCat;
    long StringDecToString;
    long StringStringToDec;
    long StringStringToHex;
    long StringCountLines;
    long StringGetLinesOffsets;
    long StringFilterNonPrintableChars;
    long StringLeft;
    long StringRight;
    long StringTrim;
    long StringLTrim;
    long StringRTrim;
    long StringInStr;
    long StringMid;
    long StringUpperCase;
    long StringLowerCase;
    long StringReverse;
    long StringSpace;
    long StringString;
    long StringIsNumeric;
    long StringFillHexBytes;
    long StringFillHexWords;
    long StringFillHexDWords;
    long StringFileNameToLabel;
    long FileGetWriteTime;
    long FileGetCreationTime;
    long FileGetAccessedTime;
    long FileGetExtension;
    long FileRemoveExtension;
    long FileReplaceExtension;
    long FileGetDirectory;
    long FileGetFileName;
    long FileOpenR;
    long FileOpenW;
    long FileOpenWAppend;
    long FileClose;
    long FileCreateEmpty;
    long FileWriteBuffer;
    long FileWriteLine;
    long FileIsDirectory;
    long FileGetSize;
    long FileExist;
    long FileIsReadOnly;
    long FileIsUnix;
    long FileLoadIntoMem;
    long FileSaveFromMem;
    long FileDir;
    long RegistryUpdateKey;
    long RegistryDeleteKey;
    long RegistryGetKeyValue;
    long GDIFillWindow;
    long GDIFillWindowFromBrush;
    long GDIFillWindowFromBrushAndhDC;
    long GDICreateColorBrush;
    long GDIObtainFont;
    long GDIDrawHorzSep;
    long GDIDrawVertSep;
    long GDIDrawLine;
    long GDIDrawLineXOR;
    long GDIDrawPixel;
    long GDIWriteText;
    long GDIWriteClippedText;
    long GDIGetTextWidth;
    long GDIGetTextHeight;
    long GDIGetFontWidth;
    long GDIGetFontHeight;
    long GDICreateBackDC;
    long GDIDestroyBackDC;
    long GDIBlitBackDC;
    long GDIColorCalcLuminosity;
    long GDIGetSerif;
    long GDIGetSerif10;
    long GDIGetCourierNew9;
    long ControlNextHook;
    long ControlSendMessage;
    long ControlClientTop;
    long ControlClientLeft;
    long ControlClientWidth;
    long ControlClientHeight;
    long ControlBringToTop;
    long ControlBringToBottom;
    long ControlSetTopMost;
    long ControlRemTopMost;
    long ControlRefresh;
    long ControlRefreshLocal;
    long ControlRepaint;
    long ControlResize;
    long ControlFreeze;
    long ControlBound;
    long ControlEnable;
    long ControlVisible;
    long ControlIsVisible;
    long ControlIsEnabled;
    long ControlGetText;
    long ControlGetTextLen;
    long ControlSetText;
    long ControlGetNotifiedMsg;
    long ControlGetNotifiedhWnd;
    long ControlGetNotifiedID;
    long ControlTop;
    long ControlLeft;
    long ControlWidth;
    long ControlHeight;
    long ControlGetHwndFromPoint;
    long ControlGetNotifiedCommand;
    long ControlGetXMousePos;
    long ControlGetYMousePos;
    long ControlGetFont;
    long ControlGetIcon;
    long ControlGetHotKey;
    long ControlSetFont;
    long ControlSetFontNoRedraw;
    long ControlIsWindowChild;
    long ControlGetClassName;
    long ControlSetClassCursor;
    long ControlGetWindowState;
    long ControlClose;
    long ComDlgChooseColor;
    long ComDlgGetOpenFileName;
    long ComDlgGetSaveFileName;
    long ComDlgChooseFont;
    long ComDlgBrowseForFolder;
    long ComDlgParseMultiFilesSelection;
    long WinsockInit;
    long WinsockUnInit;
    long SocketCreate;
    long SocketDestroy;
    long SocketConnect;
    long SocketGetPort;
    long SocketListen;
    long SocketAcceptConnection;
    long SocketSendASCIIDatasCR;
    long SocketSendUnknownDatas;
    long SocketGetRevcLen;
    long SocketReceiveASCIIDatas;
    long SocketReceiveUnknownDatas;
    long FTPInitiatePort;
    long FTPGetEntryDate;
    long FTPGetEntryFileName;
    long FTPGetEntryFileAttributes;
    long FTPGetEntryFileSize;
    long FTPIsEntryDir;
    long MiscClipBoardCopyText;
    long MiscClipBoardPasteText;
    long MiscClipBoardIsEmpty;
    long MiscShellAddFileToRecents;
    long MiscWaitEvents;
    long MiscMsgBox;
    long MiscSendBroadCastMsg;
    long MiscDoEvents;
    long MiscObtainGUID;
    long MiscAllocMem;
    long MiscFreeMem;
    long MiscCopyMemLoop;
    long MiscCopyMemWithOffsets;
    long MiscGetOSClass;
    long MiscObtainExtendedFunctions;
    long WAMMGetWindowLangGUID;
    long WAMMGetWindowLangInclude;
    long WAMMGetWindowLangDoubleSlash;
    long WAMMGetWindowLangComment;
    long WAMMGetWindowLangMultiComment;
    long WAMMGetWindowLangMultiCommentEnd;
    long WAMMGetWindowLangProc;
    long WAMMGetWindowLangEndp;
    long WAMMGetWindowLangProcInterlace;
    long WAMMGetWindowLangProcOrphan;
    long WAMMGetWindowLangProcOpenBlock;
    long WAMMGetWindowLangProcCloseBlock;
    long WAMMGetWindowLangFileName;
    long WAMMGetWindowLangIncludeName;
    long WAMMGetWindowLangIncludeNameFoot;
    long WAMMDecodeRelativePaths;
    long WAMMRemoveRelativePaths;
    long WAMMEncodeRelativePaths;
    long WAMMRunUserCommand;
    long WAMMRunCommandScript;
    long WAMMRunDOSCmd;
    long WAMMRunDOSCmdCapture;
    long WAMMDisplayHelpFile;
    long WAMMGetWindowPath;
    long WAMMIsFileWorkSpace;
    long WAMMIsFileProject;
    long WAMMGetCurrentChildState;
    long GotoFileLine;
    long WAMMFocusOnFile;
    long WAMMGetFileNameFromTreeViewItem;
    long WAMMGetLabelFromTreeViewItem;
    long WAMMOpenUnknownFile;
    long WAMMHexToDec;
    long WAMMDecToHex;
    long WAMMDecToBin;
    long WAMMHexToBin;
    long WAMMBinToDec;
    long WAMMBinToHex;
    long WAMMHexToFlt;
    long WAMMFltToHex;
    long WAMMGetProceduresList;
    long WAMMGetLineFromFile;
    long WAMMCreateNewWindow;
    long WAMMClearWindow;
    long WAMMReloadWindow;
    long WAMMCloseWindow;
    long WAMMCloseAllWindows;
    long WAMMSaveAllWindows;
    long WAMMPrintWindow;
    long WAMMSaveWindow;
    long WAMMUndo;
    long WAMMRedo;
    long WAMMCut;
    long WAMMCopy;
    long WAMMCopyFilePathName;
    long WAMMCopyEntireText;
    long WAMMPaste;
    long WAMMDeleteSel;
    long WAMMDeleteLine;
    long WAMMDeleteToStart;
    long WAMMDeleteToEnd;
    long WAMMSelectLine;
    long WAMMSelectAll;
    long WAMMSelectProc;
    long WAMMFindNext;
    long WAMMFindPrevious;
    long WAMMFindSelection;
    long GotoTop;
    long GotoBottom;
    long GotoLine;
    long GotoMatchingBracket;
    long GotoPrevWord;
    long GotoNextWord;
    long GotoPrevLetter;
    long GotoNextLetter;
    long GotoPrevLine;
    long GotoNextLine;
    long GotoPrevPage;
    long GotoNextPage;
    long WAMMGetMiniChildStruct;
    long WAMMGetIniFilePathName;
    long WAMMGetQuickDirectory;
    long WAMMGetContext;
    long WAMMGetcurrentLine;
    long WAMMSelectCurrentWord;
    long WAMMGetCurrentWord;
    long InsertText;
    long WAMMInsertLine;
    long WAMMInsertLines;
    long WAMMSetText;
    long WAMMGetCaretRealXCoordinate;
    long WAMMGetCaretRealYCoordinate;
    long WAMMSetFocusInsideWindow;
    long WAMMRestoreMDIFromSysTray;
    long WAMMInstallHookProc;
    long WAMMUnInstallHookProc;
    long WAMMGetCurrentLineNumber;
    long WAMMGetCurrentColNumber;
    long WAMMGetCurrentLineText;
    long WAMMGetLineText;
    long WAMMWriteToOutputBox;
    long WAMMEnumSourceWindows;
    long WAMMAddInKillZombie;
    long WAMMSpAddInIsAvailable;
    long WAMMMiscInputBox;
    long WAMMIsChildReadOnly;
    long WAMMSetChildReadOnly;
    long WAMMCreateCustomChildDialog;
    long WAMMCreateCodeMax;
} CHROMATICLIB, *LPCHROMATICLIB;

// -----------------------------------------------------------------------
// Variables
extern CList <HMODULE> AddInsDLL;
extern CList <HMODULE> OldAddInsDLL;
extern CList <char *> AddInsFiles;
extern CList <int> LoadedAddIns;
extern CList <int> RunningAddIns;
extern CList <int> OldRunningAddIns;
extern CList <char *> OldAddInsFiles;
extern CList <char *> AddInsDescriptions;
extern CList <FARPROC> AddInsLoad;
extern CList <FARPROC> AddInsUnLoad;
extern CList <FARPROC> AddInsMenu;
extern CHROMATICLIB AddInLib;

extern CList <long> MDICreateHooks;
extern CList <DLGPROC> MDIHooks;
extern CList <DLGPROC> MDIClientHooks;
extern CList <long> ChildCreateHooks;
extern CList <DLGPROC> ChildHooks;
extern CList <DLGPROC> CodeMaxHooks;
extern CList <int> MDICreateHooksNbr;
extern CList <int> MDIHooksNbr;
extern CList <int> MDIClientHooksNbr;
extern CList <int> ChildCreateHooksNbr;
extern CList <int> ChildHooksNbr;
extern CList <int> CodeMaxHooksNbr;
extern long HookNbr;

extern void (CALLBACK *CurCustChildInit)(HWND hwnd);
extern WNDPROC CurCustChildProc;
extern CStr CurCustChildTitle;

// -----------------------------------------------------------------------
// Functions declarations
void FillAddInsArrays(void);
void ReFillAddInsArrays(void);
void SetAddInsRunningState(void);
void StopAddIns(void);
long ShutDownAddIn(long AddInNumber);
long RestartAddIn(long AddInNumber);
void FillAddInsMenu(void);
long SearchAddInName(CStr AddInName);
long SearchOldAddInName(CStr AddInName);
CStr GetDLLDescription(CStr AddInName, FARPROC DescriptionRoutine);
CStr GetDLLAuthor(FARPROC AuthorRoutine);
long IsAddIn(CStr AddInName);
long IsSpAddIn(CStr SpAddInName);
long RunAddIn(long AddInToRun);
void FillChromaticLib(void);
long CALLBACK Wrapper_CreateStockModalDialog(long TemplateNumber, long DLeft, long DTop, long DWidth, long DHeight, HWND hParent, char *DTitle, DLGPROC WinProc, long Centered);
char * CALLBACK WAMMGetWindowLangGUID(HWND hForm);
char * CALLBACK WAMMGetWindowLangInclude(HWND hForm);
char * CALLBACK WAMMGetWindowLangDoubleSlash(HWND hForm);
char * CALLBACK WAMMGetWindowLangComment(HWND hForm);
char * CALLBACK WAMMGetWindowLangMultiComment(HWND hForm);
char * CALLBACK WAMMGetWindowLangMultiCommentEnd(HWND hForm);
char * CALLBACK WAMMGetWindowLangProc(HWND hForm);
char * CALLBACK WAMMGetWindowLangEndp(HWND hForm);
long CALLBACK WAMMGetWindowLangProcInterlace(HWND hForm);
long CALLBACK WAMMGetWindowLangProcOrphan(HWND hForm);
char * CALLBACK WAMMGetWindowLangProcOpenBlock(HWND hForm);
char * CALLBACK WAMMGetWindowLangProcCloseBlock(HWND hForm);
char * CALLBACK WAMMGetWindowLangFileName(HWND hForm);
char * CALLBACK WAMMGetWindowLangIncludeName(HWND hForm);
char * CALLBACK WAMMGetWindowLangIncludeNameFoot(HWND hForm);
char * CALLBACK WAMMDecodeRelativePaths(char *PathName);
char * CALLBACK WAMMRemoveRelativePaths(char *PathName);
char * CALLBACK WAMMEncodeRelativePaths(char *PathName);
void CALLBACK WAMMRunUserCommand(long CmdNumber);
void CALLBACK WAMMRunCommandScript(char *CommandScript, long SaveFiles);
long CALLBACK Wrapper_ComDlgChooseColor(HWND hWnd, long *ColorToGet);
char * CALLBACK Wrapper_ComDlgGetOpenFileName(HWND hWnd, char *FilesFilter, char *PrimaryDir, long MultiSelect);
char * CALLBACK Wrapper_ComDlgGetSaveFileName(HWND hWnd, char *FilesFilter, char *PrimaryDir);
long CALLBACK Wrapper_ComDlgChooseFont(HWND hWnd, char *FntName, long FntSize, long FixedOnly, LPLOGFONT WALogFont, LPCHOOSEFONT WAMyFont);
char * CALLBACK Wrapper_ComDlgBrowseForFolder(HWND hParent, char *BrowseTitle);
char * CALLBACK Wrapper_ComDlgParseMultiFilesSelection(char *SelectedFiles, long (CALLBACK *EnumProc)(char *, long), long EnumDirection, long UserValue);
long CALLBACK WAMMDisplayHelpFile(char *HelpFile, char *HelpWord);
long CALLBACK WAMMRunDOSCmd(char *CmdName, char *CmdArgs, char *CmdDir, char *CmdOutputFile);
void CALLBACK WAMMRunDOSCmdCapture(char *CmdName, char *CmdArgs, char *CmdDir);
void CALLBACK WAMMSetFocusInsideWindow(HWND hWnd);
char * CALLBACK WAMMGetWindowPath(void);
long CALLBACK WAMMIsFileWorkSpace(char *FileName);
long CALLBACK WAMMIsFileProject(char *FileName);
long CALLBACK WAMMGetCurrentChildState(void);
HWND CALLBACK GotoFileLine(char *FileName, long LineNbr, long AddInRecents);
void CALLBACK WAMMFocusOnFile(char *FileName, long AddInRecents);
char * CALLBACK WAMMGetFileNameFromTreeViewItem(HTREEITEM hItem);
char * CALLBACK WAMMGetLabelFromTreeViewItem(HTREEITEM hItem);
long CALLBACK WAMMOpenUnknownFile(char *FileName, int AddInRecent);
char * CALLBACK WAMMHexToDec(char *HexNumber);
char * CALLBACK WAMMDecToHex(char *DecNumber);
char * CALLBACK WAMMDecToBin(char *DecNumber);
char * CALLBACK WAMMHexToBin(char *HexNumber);
char * CALLBACK WAMMBinToDec(char *BinNumber);
char * CALLBACK WAMMBinToHex(char *BinNumber);
char * CALLBACK WAMMHexToFlt(char *BinNumber);
char * CALLBACK WAMMFltToHex(char *BinNumber);
char * CALLBACK WAMMGetProceduresList(char *FileName);
char * CALLBACK WAMMGetLineFromFile(HANDLE hFile, long LineNumber);
HWND CALLBACK WAMMCreateNewWindow(void);
void CALLBACK WAMMClearWindow(HWND hForm);
void CALLBACK WAMMReloadWindow(HWND hForm);
void CALLBACK WAMMCloseWindow(HWND hForm);
void CALLBACK WAMMCloseAllWindows(void);
void CALLBACK WAMMSaveAllWindows(void);
void CALLBACK WAMMPrintWindow(HWND hForm, long PrintSelection);
char * CALLBACK WAMMSaveWindow(HWND hForm);
void CALLBACK WAMMUndo(HWND hForm);
void CALLBACK WAMMRedo(HWND hForm);
void CALLBACK WAMMCut(HWND hForm);
void CALLBACK WAMMCopy(HWND hForm);
long CALLBACK WAMMCopyFilePathName(HWND hForm);
long CALLBACK WAMMCopyEntireText(HWND hForm);
void CALLBACK WAMMPaste(HWND hForm) ;
void CALLBACK WAMMDeleteSel(HWND hForm);
void CALLBACK WAMMDeleteLine(HWND hForm);
void CALLBACK WAMMDeleteToStart(HWND hForm);
void CALLBACK WAMMDeleteToEnd(HWND hForm);
void CALLBACK WAMMSelectLine(HWND hForm);
void CALLBACK WAMMSelectAll(HWND hForm);
long CALLBACK WAMMSelectProc(HWND hForm);
void CALLBACK WAMMFindNext(HWND hForm);
void CALLBACK WAMMFindPrevious(HWND hForm);
void CALLBACK WAMMFindSelection(HWND hForm);
void CALLBACK GotoTop(HWND hForm);
void CALLBACK GotoBottom(HWND hForm);
void CALLBACK GotoLine(HWND hForm, long LineNumber);
void CALLBACK GotoMatchingBracket(HWND hForm);
void CALLBACK GotoPrevWord(HWND hForm, long Selection);
void CALLBACK GotoNextWord(HWND hForm, long Selection);
void CALLBACK GotoPrevLetter(HWND hForm, long Selection);
void CALLBACK GotoNextLetter(HWND hForm, long Selection);
void CALLBACK GotoPrevLine(HWND hForm, long Selection);
void CALLBACK GotoNextLine(HWND hForm, long Selection);
void CALLBACK GotoPrevPage(HWND hForm, long Selection);
void CALLBACK GotoNextPage(HWND hForm, long Selection);
void CALLBACK WAMMGetMiniChildStruct(HWND hForm, LPMINICHILDDAT MiniChildStruct);
char * CALLBACK WAMMGetIniFilePathName(long FileNumber);
char * CALLBACK WAMMGetQuickDirectory(long FileNumber);
void CALLBACK WAMMGetContext(LPADDINCONTEXT VarsStruct);
char * CALLBACK WAMMGetcurrentLine(HWND hForm);
char * CALLBACK WAMMSelectCurrentWord(HWND hForm);
char * CALLBACK WAMMGetCurrentWord(HWND hForm);
void CALLBACK InsertText(HWND hForm, char *Txt);
void CALLBACK WAMMInsertLine(HWND hForm, char *Txt);
void CALLBACK WAMMInsertLines(HWND hForm, long Txt);
void CALLBACK WAMMSetText(HWND hForm, char *Txt);
void CALLBACK WAMMRestoreMDIFromSysTray(void);
long CALLBACK WAMMInstallHookProc(long HookAddress, long HookType);
void CALLBACK WAMMUnInstallHookProc(long HookAddress, long HookType, long HookNumber);
long CALLBACK WAMMGetCurrentLineNumber(HWND hWnd);
long CALLBACK WAMMGetCurrentColNumber(HWND hWnd);
char * CALLBACK WAMMGetCurrentLineText(HWND hWnd);
char * CALLBACK WAMMGetLineText(HWND hWnd, long Line);
void CALLBACK WAMMWriteToOutputBox(char *WAText);
void CALLBACK WAMMEnumSourceWindows(long CallBack);
int CALLBACK EnumChilds(HWND hWnd, long lParam);
void CALLBACK WAMMAddInKillZombie(long CallBack);
long CALLBACK WAMMSpAddInIsAvailable(char *AlienDllName);
char * CALLBACK WAMMMiscInputBox(HWND hParent, char *NameTitle, long Icon, char *ValueToPass, long PromptLen, long PromptType, char *PromptIniKey);
long CALLBACK Wrapper_MenuSetItemText(HMENU hMenu, char *Wrapper_ItemText, long ItemID);
long CALLBACK Wrapper_MenuAddString(HMENU hMenu, char *Wrapper_ItemText, long ItemID, long Enabled);
long CALLBACK Wrapper_MiscClipBoardCopyText(char *Wrapper_WATxt);
char * CALLBACK Wrapper_MiscClipBoardPasteText(void);
long CALLBACK Wrapper_ComboBoxAddItem(HWND Wrapper_WAhCB, char *Wrapper_WACBItemText, long Wrapper_WACBItemIndex);
char * CALLBACK Wrapper_ComboBoxGetCurrentItem(HWND Wrapper_WAhCB);
char * CALLBACK Wrapper_ComboBoxGetItem(HWND Wrapper_WAhCB, long Wrapper_WACBIndex);
long CALLBACK Wrapper_ComboBoxItemExist(HWND Wrapper_WAhCB, char *Wrapper_WACBItem);
void CALLBACK Wrapper_ComboBoxSaveInIniFile(HWND Wrapper_WAhCB, char *EntryToAdd, char *IniKey, char *IniFile);
void CALLBACK Wrapper_ComboBoxFillFromIniFile(HWND Wrapper_WAhCB, char *IniKey, char *IniFile);
char * CALLBACK Wrapper_ControlGetClassName(HWND Wrapper_WAhWnd);
char * CALLBACK Wrapper_ControlGetText(HWND Wrapper_WAhWnd);
long CALLBACK Wrapper_ControlSetText(HWND Wrapper_WAhWnd, char *WAATextToSet);
HWND CALLBACK Wrapper_CreateButton(long Wrapper_WABLeft, long Wrapper_WABTop, long Wrapper_WABWidth, long Wrapper_WABHeight, HWND Wrapper_WAhParent, char *Wrapper_WABText, long Wrapper_WACtrlID, long Wrapper_WAImgType, HICON Wrapper_WAhImage, WNDPROC Wrapper_WAWinProc, long Wrapper_WAExtraStyle, long Wrapper_WAExtraExStyle);
long CALLBACK Wrapper_MiscMsgBox(HWND WAHParent, char *WAMBText, long WAMBType);
HWND CALLBACK Wrapper_CreateCheckBox(long WABLeft, long WABTop, long WABWidth, long WABHeight, HWND WAHParent, char *WABText, long WACtrlID, WNDPROC WAWinProc, long WAExtraStyle, long WAUnderState);
HWND CALLBACK Wrapper_CreateComboBox(long WABLeft, long WABTop, long WABWidth, long WABHeight, HWND WAHParent, char *WABText, long WACtrlID, WNDPROC WAWinProc, long WAExtraStyle);
HWND CALLBACK Wrapper_CreateNonModalDialog(long WADLeft, long WADTop, long WADWidth, long WADHeight, HWND WAHParent, HMENU WAhMenu, HICON WAhIcon, char *WADTitle, void (CALLBACK *InitProc)(HWND hwnd), WNDPROC WAWinProc, long WAWExStyle, long WAWStyle, long WAShowType);
HWND CALLBACK Wrapper_CreateFrame(long WABLeft, long WABTop, long WABWidth, long WABHeight, HWND WAHParent, char *WABText, long WACtrlID, WNDPROC WAWinProc, long WAExtraStyle);
HWND CALLBACK Wrapper_CreateHexBox(long WAEDLeft, long WAEDTop, long WAEDWidth, long WAEDHeight, HWND WAHParent, char *WAEDText, long WACtrlID, long WAMaxDigits, long WAExtraStyle, long WAExtraExStyle);
HWND CALLBACK Wrapper_CreateLabel(long WALLeft, long WALTop, long WALWidth, long WALHeight, HWND WAHParent, char *WALText, long WACtrlID, WNDPROC WAWinProc, long WAExtraStyle, HFONT WAhFont);
HWND CALLBACK Wrapper_CreateMDIChildDialog(HWND WAHParent, char *WACTitle, HICON WAhIcon, void (CALLBACK *InitProc)(HWND hwnd), WNDPROC WAWinProc, long WAExtraStyle, long WAZeroPos, char *WACustomClass);
HWND CALLBACK Wrapper_CreateMDIDialog(long WAMDILeft, long WAMDITop, long WAMDIWidth, long WAMDIHeight, HWND WAHParent, HMENU WAhMenu, HICON WAhIcon, char *WAMDITitle, void (CALLBACK *InitProc)(HWND hwnd), WNDPROC WAWinProc, long WAExtraStyle, long WAShowType);
long CALLBACK Wrapper_CreateModalDialog(long WADLeft, long WADTop, long WADWidth, long WADHeight, HWND WAHParent, DLGPROC WAWinProc, long WAExtraStyle, long WACentered);
HWND CALLBACK Wrapper_CreateRadioButton(long WABLeft, long WABTop, long WABWidth, long WABHeight, HWND WAHParent, char *WABText, long WACtrlID, WNDPROC WAWinProc, long WAExtraStyle);
HWND CALLBACK Wrapper_CreateRichTextBox(long WAEDLeft, long WAEDTop, long WAEDWidth, long WAEDHeight, HWND WAHParent, char *WAEDText, long WACtrlID, WNDPROC WAWinProc, long WAExtraStyle, long WASetborder);
HWND CALLBACK Wrapper_CreateSplashDialog(long WADLeft, long WADTop, long WADWidth, long WADHeight, char *WADTitle, HWND WAHParent, HMENU WAhMenu, HICON WAhIcon, void (CALLBACK *InitProc)(HWND hwnd), WNDPROC WAWinProc, long WAWExStyle, long WAWStyle, long WAShowType);
HWND CALLBACK Wrapper_CreateStatusBar(char *WASBText, long WARaiseType, HWND WAHParent, long WACtrlID, WNDPROC WAWinProc, long WAExtraStyle);
HWND CALLBACK Wrapper_CreateTextBox(long WAEDLeft, long WAEDTop, long WAEDWidth, long WAEDHeight, HWND WAHParent, char *WAEDText, long WACtrlID, WNDPROC WAWinProc, long WAExtraStyle, long WAExtraExStyle);
char * CALLBACK Wrapper_DateGetDay(void);
char * CALLBACK Wrapper_DateGetFormat(char *Dateformat);
char * CALLBACK Wrapper_DateGetHour(void);
char * CALLBACK Wrapper_DateGetMinutes(void);
char * CALLBACK Wrapper_DateGetMonth(void);
char * CALLBACK Wrapper_DateGetNow(long WAReportSeconds);
char * CALLBACK Wrapper_DateGetSeconds(void);
char * CALLBACK Wrapper_DateGetTimeFormat(char *Dateformat);
char * CALLBACK Wrapper_DateGetYear(void);
HANDLE CALLBACK Wrapper_FileCreateEmpty(char *FileName, long WASecurity);
long CALLBACK Wrapper_FileExist(char *FileToSearch);
long CALLBACK Wrapper_FileGetAccessedTime(char *FileName, LPFILETIME FileAccessedTime);
long CALLBACK Wrapper_FileGetCreationTime(char *FileName, LPFILETIME FileCreationTime);
char * CALLBACK Wrapper_FileGetDirectory(char *FileName);
char * CALLBACK Wrapper_FileGetExtension(char *FileName);
char * CALLBACK Wrapper_FileGetFileName(char *FileName);
long CALLBACK Wrapper_FileGetSize(char *FileName);
long CALLBACK Wrapper_FileGetWriteTime(char *FileName, LPFILETIME FileWriteTime);
long CALLBACK Wrapper_FileIsDirectory(char *FileToSearch);
HANDLE CALLBACK Wrapper_FileOpenR(char *FileName);
HANDLE CALLBACK Wrapper_FileOpenW(char *FileName, long FilePos);
HANDLE CALLBACK Wrapper_FileOpenWAppend(char *FileName);
char * CALLBACK Wrapper_FileRemoveExtension(char *FileName);
char * CALLBACK Wrapper_FileReplaceExtension(char *FileName, char *WANewExtension);
long CALLBACK Wrapper_FileIsReadOnly(char *FileToCheck);
long CALLBACK Wrapper_FileIsUnix(char *FileToCheck);
HGLOBAL CALLBACK Wrapper_FileLoadIntoMem(char *FileToLoad, long *BytesRd);
long CALLBACK Wrapper_FileSaveFromMem(char *FileToSave, long MemToSave, long LenToSave);
char * CALLBACK Wrapper_FileDir(char *WAWildCard, long FileType);
long CALLBACK Wrapper_FileWriteLine(HANDLE FileHandle, char *WALineToWrite);
char * CALLBACK Wrapper_FTPGetEntryDate(char *WADirEntry);
char * CALLBACK Wrapper_FTPGetEntryFileAttributes(char *WADirEntry);
char * CALLBACK Wrapper_FTPGetEntryFileName(char *WADirEntry);
char * CALLBACK Wrapper_FTPGetEntryFileSize(char *WADirEntry);
long CALLBACK Wrapper_FTPIsEntryDir(char *WADirEntry);
long CALLBACK Wrapper_GDIGetTextHeight(HWND WAhWnd, HFONT WAhFont, char *WATxt);
long CALLBACK Wrapper_GDIGetTextWidth(HWND WAhWnd, HFONT WAhFont, char *WATxt);
HFONT CALLBACK Wrapper_GDIObtainFont(char *WAFontNameToObtain, long WAFontSizeToObtain, HWND WAhWnd, long WABold, long WAItalic);
void CALLBACK Wrapper_GDIWriteClippedText(HDC WAhDC, long WAx, long WAy, long WAWidth, long WAHeight, char *WAText, long WATextColor, HFONT WAhTextFont, long WATextTransparent, long WABackGroundColor);
void CALLBACK Wrapper_GDIWriteText(HDC WAhDC, long WAx, long WAy, char *WAText, long WATextColor, HFONT WAhTextFont, long WATextTransparent, long WABackGroundColor);
long CALLBACK Wrapper_IniDeleteKey(char *WASection, char *WAKey, char *File);
char * CALLBACK Wrapper_IniReadKey(char *WASection, char *WAKey, char *File);
long CALLBACK Wrapper_IniReadBoolKey(char *WASection, char *WAKey, char *File);
long CALLBACK Wrapper_IniWriteKey(char *WASection, char *WAKey, char *WAValue, char *File);
long CALLBACK Wrapper_IniWriteSection(char *WASection, char *WAKey, char *File);
long CALLBACK Wrapper_ListBoxAddItem(HWND WAhLB, char *WALBItemText, long WALBItemIndex);
char * CALLBACK Wrapper_ListBoxGetCurrentItem(HWND WAhLB);
char * CALLBACK Wrapper_ListBoxGetItem(HWND WAhLB, long WALBIndex);
long CALLBACK Wrapper_ListBoxItemExist(HWND WAhListBox, char *WACBItem);
long CALLBACK Wrapper_ListBoxReplaceItem(HWND WAhLB, long WALBIndex, char *WALBNewItem);
long CALLBACK Wrapper_ListBoxReplaceSelItem(HWND WAhLB, char *WBLBNewItemText);
long CALLBACK Wrapper_ListViewAddCol(HWND WAhListView, char *WALVColText, long WALVWidth, long WAColPosition);
long CALLBACK Wrapper_ListViewAddItem(HWND WAhListView, char *WALVItemText, long WALVItemPos, long WALVImage);
long CALLBACK Wrapper_ListViewFindItem(HWND WAhListView, char *WALVItemText);
long CALLBACK Wrapper_ListViewFindSubItem(HWND WAhListView, char *WATextToFind, long WASubItemNbr, long WASearchCase);
char * CALLBACK Wrapper_ListViewGetEditResult(long WAlParam);
char * CALLBACK Wrapper_ListViewGetHeaderLabel(HWND WAhListView, long WALVColNumber);
char * CALLBACK Wrapper_ListViewGetItemText(HWND WAhListView, long WALVItemIndex, long WALVSubItemNumber);
char * CALLBACK Wrapper_ListViewGetSelItemText(HWND WAhListView, long WALVSubItemNumber);
long CALLBACK Wrapper_ListViewSetSelItemText(HWND WAhListView, char *WALVItemText, long WALVSubItemNumber);
long CALLBACK Wrapper_ListViewSetSubItem(HWND WAhListView, char *WALVItemText, long WALVItemPos, long WALVSubItemPos);
char * CALLBACK Wrapper_MenuGetString(HMENU WAhMenu, long WAItemID);
long CALLBACK Wrapper_RebarAddBand(HWND WAhRebar, HWND WAhChild, char *WARBText, long WARBYSize, long WAExtraStyle, long WAMinSize);
long CALLBACK Wrapper_RegistryDeleteKey(HKEY WAKeyRoot, char *WAKeyName, char *WASubKeyName, long WAKeyType);
char * CALLBACK Wrapper_RegistryGetKeyValue(HKEY WAKeyRoot, char *WAKeyName, char *WASubKeyRef);
long CALLBACK Wrapper_RegistryUpdateKey(HKEY WAKeyRoot, char *WAKeyName, char *WASubKeyName, char *WASubKeyValue, long WAKeyType);
void CALLBACK Wrapper_MiscShellAddFileToRecents(char *FileName);
long CALLBACK Wrapper_SocketConnect(SOCKET WAhSock, LPSOCKADDR_IN WASockStruct, long WAMessage, HWND WAhWnd, char *WAIP, long WAPort, long WATimeOut);
char * CALLBACK Wrapper_SocketReceiveASCIIDatas(SOCKET WAhSock);
long CALLBACK Wrapper_SocketSendASCIIDatasCR(SOCKET WAhSock, char *WABuffer);
long CALLBACK Wrapper_StatusBarSetText(HWND WAhStatusBar, long WASBPart, long WARaiseType, char *WASBText, long WAOwnerDatas);
long CALLBACK Wrapper_StringCount(char *WAMaIn_String, char *StringToCount, long WACountStart, long WACompareType);
char * CALLBACK Wrapper_StringReplace(char *WAMaIn_String, char *StringToFind, char *StringToReplace, long WAReplaceStart, long WARepCount, long WACompareType);
char * CALLBACK Wrapper_StringGetSplitElement(char *WAStrFromSplit, long *WASplitMem, long WAElement);
char * CALLBACK Wrapper_StringHex16(long WANumber);
char * CALLBACK Wrapper_StringHex32(long WANumber);
char * CALLBACK Wrapper_StringHex8(long WANumber);
long CALLBACK Wrapper_StringIsAlphaChar(char *WAALetter);
long CALLBACK Wrapper_StringIsArobasChar(char *WAPLetter);
long CALLBACK Wrapper_StringIsSpaceChar(char *WAPLetter);
long CALLBACK Wrapper_StringIsBlankChar(char *WABLetter);
long CALLBACK Wrapper_StringIsDecimal(char *WADecText, long WAMaxLen);
long CALLBACK Wrapper_StringIsDigitChar(char *WADLetter);
long CALLBACK Wrapper_StringIsDotChar(char *WAPLetter);
long CALLBACK Wrapper_StringIsCommaChar(char *WAPLetter);
long CALLBACK Wrapper_StringIsQuoteChar(char *WAPLetter);
long CALLBACK Wrapper_StringIsEOL(char *WAEOLetter);
long CALLBACK Wrapper_StringIsHexaChar(char *WAALetter);
long CALLBACK Wrapper_StringIsHexaDecimal(char *WAHexaText);
long CALLBACK Wrapper_StringIsLabel(char *WAAsmText, int Allow_Space);
long CALLBACK Wrapper_StringIsLabelChar(char *WAVCLetter);
long CALLBACK Wrapper_StringIsOpenBracketChar(char *WAOLetter);
long CALLBACK Wrapper_StringIsUnderLineChar(char *WAULetter);
char * CALLBACK Wrapper_StringJoin(char *WAStrFromSplit, long *WASplitMem, char *WAJoIn_String, long WAFirstElement, long WAElementLimit);
char * CALLBACK Wrapper_StringNumberComplement(long WANbr, long WAComplement);
char * CALLBACK Wrapper_StringHexNumberComplement(long WANbr, long WAComplement);
char * CALLBACK Wrapper_StringOctNumberComplement(long WANbr, long WAComplement);
char * CALLBACK Wrapper_StringBinNumberComplement(long WANbr, long WAComplement);
long * CALLBACK Wrapper_StringSplit(char *WAStrToSplit, char *WAStrSplitter);
char * CALLBACK Wrapper_StringCat(char *String1, char *String2);
char * CALLBACK Wrapper_StringDecToString(long WADecimalNbr);
long CALLBACK Wrapper_StringStringToDec(char *WADecString);
long CALLBACK Wrapper_StringStringToHex(char *WAHexString);
char * CALLBACK StringLeft(char *String, long Dat);
char * CALLBACK StringRight(char *String, long Dat);
char * CALLBACK StringTrim(char *String);
char * CALLBACK StringLTrim(char *String);
char * CALLBACK StringRTrim(char *String);
long CALLBACK StringInStr(char *String, long Start, char *WASearchString = 0, long CompType = Binary_Compare);
char * CALLBACK StringMid(char *String, long Start, long Len = -1);
char * CALLBACK StringUpperCase(char *String);
char * CALLBACK StringLowerCase(char *String);
char * CALLBACK StringReverse(char *String);
char * CALLBACK StringSpace(long Len);
char * CALLBACK StringString(long Len, long Dat);
long CALLBACK StringIsNumeric(char *String);
long CALLBACK Wrapper_SysTabAddItem(HWND WAhTab, char *WATabText, long WATabIndex, long WAImgIndex);
void CALLBACK Wrapper_TextBoxAddText(HWND WAhTextBox, char *WATbText);
char * CALLBACK Wrapper_TextBoxGetPasswordChar(HWND WAhTextBox);
long CALLBACK Wrapper_TextBoxSetPasswordChar(HWND WAhTextBox, char *PassChar);
long CALLBACK Wrapper_ToolBarAddButton(HWND WAhToolbar, char *ButtonText, long WATBButtonID, long WAImgIndex, long ButtonStyle, long ButtonState, long WANoImage);
void CALLBACK Wrapper_ToolBarDisplayToolTip(char *WATextToShow, long WAlParam);
HTREEITEM CALLBACK Wrapper_TreeViewAddItem(HWND WAhTreeView, char *WATVItemText, HTREEITEM WATVParent, HTREEITEM WATVChildPos, long WATVImage, long WATVSelImage, long WAExtraStyle, long WARefreshParentAfterAdd);
char * CALLBACK Wrapper_TreeViewGetItemText(HWND WAhTreeView, HTREEITEM WAhItem);
long CALLBACK Wrapper_TreeViewSearchChildPartialText(HWND WAhTreeView, HTREEITEM WAhNode, char *WAItemText);
long CALLBACK Wrapper_TreeViewSearchItemText(HWND WAhTreeView, HTREEITEM WAhNode, char *WAItemText);
long CALLBACK Wrapper_TreeViewSetItemText(HWND WAhTreeView, HTREEITEM WAhItem, char *WAItemText);
long CALLBACK MiscObtainExtendedFunctions(void);
HWND WAMMCreateCustomChildDialog(CStr Title, void (CALLBACK *CallBackInit)(HWND hwnd), WNDPROC CallBackProc);
HWND CALLBACK Wrapper_WAMMCreateCustomChildDialog(char *Title, void (CALLBACK *CallBackInit)(HWND hwnd), WNDPROC CallBackProc);
HWND CALLBACK WAMMCreateCodeMax(long Left, long Top, long Width, long Height, HWND hWnd, void (CALLBACK *CodeMaxPropertiesHook)(HWND));
HWND CALLBACK Wrapper_CreateDockingBox(char *Title, WNDPROC WindowProc);
long CALLBACK Wrapper_DockingBoxWasVisible(char *DockName);
void CALLBACK Wrapper_DockingBoxShow(HWND hDock, int DefaultXSize, int DefaultYSize, int DefaultState);

#endif
